--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / android / app / src / main / python / able / structures.py
Displaying Raw • Download
android/app/src/main/python/able/structures.py e0f1f99cd1c208c5008a936230c38e448dddd45d (e0f1f99c) Text, 1.31 KB
T8b949e# SPDX-License-Identifier: MIT
T8b949e"""Advertisement and GATT service helpers (from able)."""
Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations
Tff7b72import T7ee787re
Tff7b72from T7ee787collections Tff7b72import Te6edf3namedtuple
Tff7b72class T56d364AdvertisementTb4b4b4:
Te6edf3AD Tff7b72= Te6edf3namedtupleTb4b4b4(Ta5d6ff"Ta5d6ffADTa5d6ff"Tb4b4b4, Tb4b4b4[Ta5d6ff"Ta5d6ffad_typeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdataTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72class T56d364ad_typesTb4b4b4:
Te6edf3flags Tff7b72= T79c0ff0x01
Te6edf3complete_local_name Tff7b72= T79c0ff0x09
Te6edf3service_data Tff7b72= T79c0ff0x16
Te6edf3manufacturer_specific_data Tff7b72= T79c0ff0xFF
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3dataTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdata Tff7b72= Te6edf3data
Tff7b72def Tff7b72__iter__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3AdvertisementTff7b72.Td2a8ffparseTb4b4b4(Tff7b72selfTff7b72.Td2a8ffdataTb4b4b4)
Tf0883e@classmethod
Tff7b72def Td2a8ffparseTb4b4b4(Tff7b72clsTb4b4b4, Te6edf3dataTb4b4b4)Tb4b4b4:
Te6edf3pos Tff7b72= T79c0ff0
Tff7b72while Te6edf3pos Tff7b72< Tffa657lenTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4:
Te6edf3length Tff7b72= Te6edf3dataTb4b4b4[Te6edf3posTb4b4b4]
Tff7b72if Te6edf3length Tff7b72< T79c0ff2Tb4b4b4:
Tff7b72return
Tff7b72tryTb4b4b4:
Te6edf3ad_type Tff7b72= Te6edf3dataTb4b4b4[Te6edf3pos Tff7b72+ T79c0ff1Tb4b4b4]
Tff7b72except Tf85149IndexErrorTb4b4b4:
Tff7b72return
Te6edf3next_pos Tff7b72= Te6edf3pos Tff7b72+ Te6edf3length Tff7b72+ T79c0ff1
Tff7b72if Te6edf3ad_typeTb4b4b4:
Te6edf3segment Tff7b72= Tffa657sliceTb4b4b4(Te6edf3pos Tff7b72+ T79c0ff2Tb4b4b4, Te6edf3next_posTb4b4b4)
Tff7b72yield Te6edf3AdvertisementTff7b72.Td2a8ffADTb4b4b4(Te6edf3ad_typeTb4b4b4, Tffa657bytearrayTb4b4b4(Te6edf3dataTb4b4b4[Te6edf3segmentTb4b4b4]Tb4b4b4)Tb4b4b4)
Te6edf3pos Tff7b72= Te6edf3next_pos
Tff7b72class T56d364ServicesTb4b4b4(Tffa657dictTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffsearchTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3patternTb4b4b4, Te6edf3flagsTff7b72=Te6edf3reTff7b72.Td2a8ffIGNORECASETb4b4b4)Tb4b4b4:
Tff7b72for Te6edf3characteristics Tff7b72in Tff7b72selfTff7b72.Td2a8ffvaluesTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72for Te6edf3uuidTb4b4b4, Te6edf3characteristic Tff7b72in Te6edf3characteristicsTff7b72.Td2a8ffitemsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3reTff7b72.Td2a8ffsearchTb4b4b4(Te6edf3patternTb4b4b4, Te6edf3uuidTb4b4b4, Te6edf3flagsTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3characteristic
Tff7b72return Tff7b72None
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────